package com.kunpeng.weibo.sina.api;

import com.kunpeng.weibo.sina.SinaWeibo;
import com.kunpeng.weibo.sina.beans.Oauth2AccessToken;
import com.kunpeng.weibo.sina.beans.WeiboParameters;
import com.kunpeng.weibo.sina.http.HttpTask;

/**
 * 微博相关接口
 * 
 * @author Lee
 * @date 2012-4-23
 * @Description TODO
 */
public class Statuses_API extends Request_API {

	public Statuses_API(Oauth2AccessToken accessToken) {
		super(accessToken);
	}

	/**
	 * 发布一条新微博
	 * 
	 * @param status 要发布的微博文本内容，必须做URLencode，内容不超过140个汉字。
	 * @param latitude 纬度，有效范围：-90.0到+90.0，+表示北纬，默认为0.0。
	 * @param longitude 经度，有效范围：-180.0到+180.0，+表示东经，默认为0.0。
	 * @param annotations
	 *        元数据，主要是为了方便第三方应用记录一些适合于自己使用的信息，每条微博可以包含一个或者多个元数据，必须以json字串的形式提交，
	 *        字串长度不超过512个字符，具体内容可以自定。
	 */
	public int update(String status, float latitude, float longitude, String annotations) {
		if (mAccessToken == null) {
			throw new NullPointerException();
		}
		String url = "https://api.weibo.com/2/statuses/update.json";
		WeiboParameters parameters = new WeiboParameters();
		parameters.add("source", SinaWeibo.SINA_APP_KEY);
		parameters.add("status", status);
		parameters.add("lon", String.valueOf(longitude));
		parameters.add("lat", String.valueOf(latitude));
		parameters.add("annotations", annotations);
		return new HttpTask().openUrl(url, HttpTask.HTTPMETHOD_POST, parameters, mAccessToken);
	}

	/**
	 * 上传图片并发布一条新微博
	 * 
	 * @param status 要发布的微博文本内容，必须做URLencode，内容不超过140个汉字。
	 * @param pic 要上传的图片，仅支持JPEG、GIF、PNG格式，图片大小小于5M。
	 * @param latitude 纬度，有效范围：-90.0到+90.0，+表示北纬，默认为0.0。
	 * @param longitude 经度，有效范围：-180.0到+180.0，+表示东经，默认为0.0。
	 * @param annotations 元数据
	 *        ，主要是为了方便第三方应用记录一些适合于自己使用的信息，每条微博可以包含一个或者多个元数据，必须以json字串的形式提交
	 *        ，字串长度不超过512个字符，具体内容可以自定。
	 */
	public int upload(String status, String pic, float latitude, float longitude, String annotations) {
		if (mAccessToken == null) {
			throw new NullPointerException();
		}
		String url = "https://api.weibo.com/2/statuses/upload.json";
		WeiboParameters parameters = new WeiboParameters();
		parameters.add("source", SinaWeibo.SINA_APP_KEY);
		parameters.add("status", status);
		parameters.add("pic", pic);
		parameters.add("lon", String.valueOf(longitude));
		parameters.add("lat", String.valueOf(latitude));
		parameters.add("annotations", annotations);
		return new HttpTask().openUrl(url, HttpTask.HTTPMETHOD_POST, parameters, mAccessToken);
	}

}
